home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / CMPLTPAS / CALCTIME.PAS < prev    next >
Pascal/Delphi Source File  |  1988-07-14  |  2KB  |  45 lines

  1. {->>>>CalcTime<<<<---------------------------------------------}
  2. {                                                              }
  3. { Filename: CALCTIME.SRC -- Last Modified 7/7/88               }
  4. {                                                              }
  5. { This routine "fills out" a TimeRec passed to it with only    }
  6. { the DOS time values (hours, minutes, seconds, hundredths)    }
  7. { valid.  It generates the TimeComp and TimeString fields.     }
  8. {                                                              }
  9. {     TimeRec = RECORD                                         }
  10. {                 TimeComp   : Word;      (DTA time stamp)     }
  11. {                 TimeString : String80;                       }
  12. {                 Hours,Minutes,Seconds,Hundredths : Integer   }
  13. {               END;                                           }
  14. {                                                              }
  15. { which, of course, also requires definition of type String80. }
  16. {                                                              }
  17. {     From: COMPLETE TURBO PASCAL 5.0  by Jeff Duntemann       }
  18. {    Scott, Foresman & Co., Inc. 1988   ISBN 0-673-38355-5     }
  19. {--------------------------------------------------------------}
  20.  
  21. PROCEDURE CalcTime(VAR ThisTime : TimeRec);
  22.  
  23. TYPE
  24.   String5 = String[5];
  25.  
  26. VAR
  27.   Temp1,Temp2 : String5;
  28.   AMPM        : Char;
  29.   I           : Integer;
  30.  
  31. BEGIN
  32.   WITH ThisTime DO
  33.     BEGIN
  34.       I := Hours;
  35.       IF Hours = 0 THEN I := 12;   { "0" hours = 12am }
  36.       IF Hours > 12 THEN I := Hours - 12;
  37.       IF Hours > 11 THEN AMPM := 'p' ELSE AMPM := 'a';
  38.       Str(I:2,Temp1); Str(Minutes,Temp2);
  39.       IF Length(Temp2) < 2 THEN Temp2 := '0' + Temp2;
  40.       TimeString := Temp1 + ':' + Temp2 + AMPM;
  41.       TimeComp :=
  42.         (Hours SHL 11) OR (Minutes SHL 5) OR (Seconds SHR 1)
  43.     END
  44. END;
  45.